package com.ruoyi.common.utils.equipment;
import java.util.Arrays;
import java.util.Random;

public class Test{


	public static void TestFrame(){
		int iSur=0xEC50;
		C502Mframe oFC = new C502Mframe(1111,iSur,1,1,0,null);
		String sHex = ConverterTool.Byte2Hex( oFC.GetFrame() );
		System.out.println("读取机器号指令：\n" + sHex + "\n");
		//SendTCPData(oFC.GetFrame()); //发送数据到网络上
		//模拟接收数据
		byte buf[];
		int i;
		//buf =ReadTCPData()；//从网络上读取数据包
		buf=ConverterTool.Hex2Byte("7E01EC5031010101717E" +  //正确的命令
				"7E11EC0031010101717E");//错误命令
		C502Mframe oRet=null;
		for(  i=0;i<buf.length;i++) {
			boolean bret=C502MframeCompile.CompileData(buf[i]);
			if(bret){
				oRet=C502MframeCompile.GetRxFrame();
				//数据处理完毕，校验和正确
				System.out.println( "返回值解析完毕，格式详解：" );
				String sRtn;
				sRtn="机器号:" + oRet.GetAddr();
				sRtn+="\n信息代码:" + Integer.toHexString( oRet.GetCode() );
				sRtn+="\n命令类型：" + oRet.GetCmdType();
				sRtn+="\n命令参数：" + oRet.GetCmdPar();
				sRtn+="\n数据长度：" + oRet.GetDataLen();
				if( oRet.GetDataLen()>0 ){
					sRtn+="\n数据内容：" + ConverterTool.Byte2Hex( oRet.GetDatabuff() );
				}
				System.out.println( sRtn );

				//对返回值进行解析判断
				if (oRet.GetCode() == iSur)  //判断是否是此命令返回，判断信息代码是否相等
				{

					System.out.println( "命令成功返回！" );

				}



				System.out.println("解析完毕");
				//继续解析数据包
				oRet=null;
			}
		}
	}


	public static void main(String args[]){
		TestFrame();
	}



}
